// @ts-nocheck

import app from '@system.app';
import http from '@ohos.net.http';
import router from '@system.router';
import prompt from '@system.prompt';
import getFriend from '../../common/component/bottom_tab.js';

export default {
    data: {
        result:'',
        resultApplication:'',
        userId:'',
        token:'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiMCIsImV4cCI6MTY0NTI0OTQ3MywidXNlcklkIjoiMTQ4MjY1MDY3ODk3NDk0MzIzMyIsInVzZXJuYW1lIjoiUVHlhYnmo43oioLlv6vkuZAifQ.j-kqvMGa2CuRBVjE72BYp81Pxf_--JUqrgFjbsZMWiM'
    },
    onInit() {
            this.getFriendApplication(this.token);
        console.info("onInit---123");

        },




    //获取所有好友申请
    getFriendApplication(token){
        let httpRequest = http.createHttp();
        // 用于订阅http响应头，此接口会比request请求先返回。可以根据业务需要订阅此消息
        httpRequest.on('headerReceive', (err, data) => {

        });
        httpRequest.request(
        // 填写http请求的url地址，可以带参数也可以不带参数。URL地址需要开发者自定义。GET请求的参数可以在extraData中指定
            "http://8.142.187.137:8888/user/getAllAdd",
            {
                method: 'POST', // 可选，默认为“GET”
                // 开发者根据自身业务需要添加header字段
                header: {
                    'Content-Type': 'application/json',
                    'token': token
                },
                // 当使用POST请求时此字段用于传递内容
                extraData: '',
                readTimeout: 60000, // 可选，默认为60000ms
                connectTimeout: 60000 // 可选，默认为60000ms
            },(err, data) => {
            if (!err) {
                // data.result为http响应内容，可根据业务需要进行解析
                var result = JSON.parse(data.result);
                console.info('Resultgetallapplication---:' + data.result);
                console.info('code:' + data.responseCode);
                // data.header为http响应头，可根据业务需要进行解析
                console.info('header:' + data.header);
                if(result["code"] == '200'){
                    console.info("alladdFriend-----" + result.data);
                    this.resultApplication = result.data;


                }else if(result["code"] == '400'){
                    prompt.showToast({
                        message: result.msg
                    })
                    console.info("shibai---");
                }

            } else {
                console.info('error:' + err.data);
            }
        }
        );
    },

    //    通过电话模糊查找好友
    fetch(phone){
        let httpRequest = http.createHttp();
        // 用于订阅http响应头，此接口会比request请求先返回。可以根据业务需要订阅此消息
        httpRequest.on('headerReceive', (err, data) => {

        });
        httpRequest.request(
        // 填写http请求的url地址，可以带参数也可以不带参数。URL地址需要开发者自定义。GET请求的参数可以在extraData中指定
            "http://8.142.187.137:8888/user/findFriend",
            {
                method: 'POST', // 可选，默认为“GET”
                // 开发者根据自身业务需要添加header字段
                header: {
                    'Content-Type': 'application/json',
                    'token': this.token
                },
                // 当使用POST请求时此字段用于传递内容
                extraData: {
                    "phone": phone ,
                },
                readTimeout: 60000, // 可选，默认为60000ms
                connectTimeout: 60000 // 可选，默认为60000ms
            },(err, data) => {
            if (!err) {
                // data.result为http响应内容，可根据业务需要进行解析
                var result = JSON.parse(data.result);
                console.info('Result:' + data.result);
                console.info('code:' + data.responseCode);
                // data.header为http响应头，可根据业务需要进行解析
                console.info('header:' + data.header);
                if(result["code"] == '200'){
                    prompt.showToast({
                        message: result.msg
                    })

                    router.push({
                        uri: 'pages/findFriend/findFriend',
                        params: {
                            result: result.data,
                            token: this.token,
                        },
                    })


                }else if(result["code"] == '400'){
                    prompt.showToast({
                        message: result.msg
                    })
                }

            } else {
                console.info('error:' + err.data);
            }
        }
        );
    },
//    搜索
    find(e){

        console.info("search===" + e.text);
        this.fetch(e.text);
    },

//    删除好友
    deleteFriend(userId){
        let httpRequest = http.createHttp();
        // 用于订阅http响应头，此接口会比request请求先返回。可以根据业务需要订阅此消息
        httpRequest.on('headerReceive', (err, data) => {

        });
        httpRequest.request(
        // 填写http请求的url地址，可以带参数也可以不带参数。URL地址需要开发者自定义。GET请求的参数可以在extraData中指定
            "http://8.142.187.137:8888/user/deleteFriend/"+userId,
            {
                method: 'POST', // 可选，默认为“GET”
                // 开发者根据自身业务需要添加header字段
                header: {
                    'Content-Type': 'application/json',
                    'token': this.token
                },
                // 当使用POST请求时此字段用于传递内容
                extraData:'',
                readTimeout: 60000, // 可选，默认为60000ms
                connectTimeout: 60000 // 可选，默认为60000ms
            },(err, data) => {
            if (!err) {
                // data.result为http响应内容，可根据业务需要进行解析
                var result = JSON.parse(data.result);
                console.info('Result--deteleFriend:' + data.result);
                console.info('code:' + data.responseCode);
                // data.header为http响应头，可根据业务需要进行解析
                console.info('header:' + data.header);
                if(result["code"] == '200'){
                    prompt.showToast({
                        message: result.data
                    })

                    getFriend.getFriend(this.token);


                }else if(result["code"] == '400'){
                    prompt.showToast({
                        message: result.msg
                    })
                }

            } else {
                console.info('error:' + err.data);
            }
        }
        );
    },

//    发送信息
    sendMessage(userId1,name){
        console.log("sendmessage: name:"+name);
        router.push({
            uri: 'pages/sendMessage/sendMessage',
            params: {
                token: this.token,
                userId: this.userId,
                userId1: userId1,
                name: name
            },
        })
    },
//    --好友申请处理

    refuseFriend(item){
        let httpRequest = http.createHttp();
        // 用于订阅http响应头，此接口会比request请求先返回。可以根据业务需要订阅此消息
        httpRequest.on('headerReceive', (err, data) => {

        });
        httpRequest.request(
        // 填写http请求的url地址，可以带参数也可以不带参数。URL地址需要开发者自定义。GET请求的参数可以在extraData中指定
            "http://8.142.187.137:8888/user/processAdd",
            {
                method: 'POST', // 可选，默认为“GET”
                // 开发者根据自身业务需要添加header字段
                header: {
                    'Content-Type': 'application/json',
                    'token': this.token
                },
                // 当使用POST请求时此字段用于传递内容
                extraData:{
                    'relationId': item.relationId,
                    'state': 2,
                },
                readTimeout: 60000, // 可选，默认为60000ms
                connectTimeout: 60000 // 可选，默认为60000ms
            },(err, data) => {
            if (!err) {
                // data.result为http响应内容，可根据业务需要进行解析
                var result = JSON.parse(data.result);
                console.info('Result--refuseFriend:' + data.result);
                console.info('code:' + data.responseCode);
                // data.header为http响应头，可根据业务需要进行解析
                console.info('header:' + data.header);
                if(result["code"] == '200'){
                    prompt.showToast({
                        message: result.data
                    })
                    getFriend.getFriend(this.token);



                }else if(result["code"] == '400'){
                    prompt.showToast({
                        message: result.msg
                    })
                }

            } else {
                console.info('error:' + err.data);
            }
        }
        );
    },




//    通过申请
    passFriend(item){
        var buttonValue = 5;
        var token = this.token;
        var passFriendFetch = this.passFriendFetch;
        prompt.showActionMenu({
            title: '选择好友类型',
            buttons: [
                {
                    text: '学生',
                    color: '#666666',
                },
                {
                    text: '家长',
                    color: '#000000',
                },
                {
                    text: '老师',
                    color: '#000000',
                },
            ],
            success: function(data) {
                buttonValue = data.tapIndex;
                if(buttonValue == 0 || buttonValue == 1 || buttonValue ==2){
                    console.info("dialog buttonvalue1"+ token);
                    passFriendFetch(item,buttonValue,token);
                }
                console.info('dialog success callback，click button : ' + data.tapIndex + item.name+'---' + buttonValue+typeof(buttonValue));
            },
            fail: function(data) {
                console.info('dialog fail callback' + data.errMsg);
            },
        });



    },

    passFriendFetch(item,buttonValue,token){
    let httpRequest = http.createHttp();
                // 用于订阅http响应头，此接口会比request请求先返回。可以根据业务需要订阅此消息
                httpRequest.on('headerReceive', (err, data) => {

                });
                httpRequest.request(
                // 填写http请求的url地址，可以带参数也可以不带参数。URL地址需要开发者自定义。GET请求的参数可以在extraData中指定
                    "http://8.142.187.137:8888/user/processAdd",
                    {
                        method: 'POST', // 可选，默认为“GET”
                        // 开发者根据自身业务需要添加header字段
                        header: {
                            'Content-Type': 'application/json',
                            'token': token
                        },
                        // 当使用POST请求时此字段用于传递内容
                        extraData:{
                            'relationId': item.relationId,
                            'state': 1,
                            'relationType':buttonValue,
                            'name': item.name,
                        },
                        readTimeout: 60000, // 可选，默认为60000ms
                        connectTimeout: 60000 // 可选，默认为60000ms
                    },(err, data) => {
                    if (!err) {
                        // data.result为http响应内容，可根据业务需要进行解析
                        var result = JSON.parse(data.result);
                        console.info('Result--passFriend:' + data.result);
                        console.info('code:' + data.responseCode);
                        // data.header为http响应头，可根据业务需要进行解析
                        console.info('header:' + data.header);
                        if(result["code"] == '200'){
                            prompt.showToast({
                                message: result.data
                            })
                            getFriend.getFriend(token);



                        }else if(result["code"] == '400'){
                            prompt.showToast({
                                message: result.msg
                            })
                        }

                    } else {
                        console.info('error:' + err.data);
                    }
                }
                );
    },
    backClick(){
        router.back();
    },
}